#include "StdAfx.h"
#include "EqualizerXAPOFX.h"

EqualizerXAPOFX::EqualizerXAPOFX(IXAudio2SourceVoice *pVoice, WAVEFORMATEXTENSIBLE* pwfx):EffectXAPO(pVoice, pwfx)
{
	CreateFX(__uuidof(FXEQ),&pXAPO);

	XAPOParameters.FrequencyCenter0 = FXEQ_DEFAULT_FREQUENCY_CENTER_0;
    XAPOParameters.Gain0 = FXEQ_DEFAULT_GAIN;
    XAPOParameters.Bandwidth0 = FXEQ_DEFAULT_BANDWIDTH;
    XAPOParameters.FrequencyCenter1 = FXEQ_DEFAULT_FREQUENCY_CENTER_1;
    XAPOParameters.Gain1 = FXEQ_DEFAULT_GAIN;
    XAPOParameters.Bandwidth1 = FXEQ_DEFAULT_BANDWIDTH;
    XAPOParameters.FrequencyCenter2 = FXEQ_DEFAULT_FREQUENCY_CENTER_2;
    XAPOParameters.Gain2 = FXEQ_DEFAULT_GAIN;
    XAPOParameters.Bandwidth2 = FXEQ_DEFAULT_BANDWIDTH;
    XAPOParameters.FrequencyCenter3 = FXEQ_DEFAULT_FREQUENCY_CENTER_3;
    XAPOParameters.Gain3 = FXEQ_DEFAULT_GAIN;
    XAPOParameters.Bandwidth3 = FXEQ_DEFAULT_BANDWIDTH;
}

EqualizerXAPOFX::~EqualizerXAPOFX(void)
{
}

HRESULT EqualizerXAPOFX::apply(void) 
{
	pSourceVoice->SetEffectParameters( GetEffectNumber(), &XAPOParameters, sizeof( FXECHO_PARAMETERS ) );
	

	return S_OK;
}
 

FXEQ_PARAMETERS EqualizerXAPOFX::GetFxeqParameters(void)
{
	return XAPOParameters;
}

FXEQ_PARAMETERS EqualizerXAPOFX::SetFxeqParameters(FXEQ_PARAMETERS& NewXAPOParameters)
{
	FXEQ_PARAMETERS OldXAPOParameters = XAPOParameters;
	XAPOParameters = NewXAPOParameters;

	return OldXAPOParameters;
}